package com.example.pool;

import org.apache.commons.pool2.impl.GenericObjectPool;
import org.apache.commons.pool2.impl.GenericObjectPoolConfig;

public class MainTest {


    public static void main(String[] args) {
        // sftp池化工厂
        SftpProcessFactory factory = new SftpProcessFactory();

        // 创建对象池配置
        GenericObjectPoolConfig<SftpConnections> config = new GenericObjectPoolConfig<SftpConnections>();
        // 池的最大容量
        config.setMaxTotal(10);
        // 最大空闲连接数
        config.setMinIdle(5);

        // 通过池化工厂和配置  创建对象池
        GenericObjectPool<SftpConnections> objectPool = new GenericObjectPool<>(factory, config);

        try {
            // 从对象池中获取对象
            SftpConnections obj = objectPool.borrowObject();

            // 使用对象
            obj.doSomething();

            // 将对象返回给对象池
            objectPool.returnObject(obj);
        } catch (Exception e) {
            e.printStackTrace();
        } finally {
            // 关闭对象池
            objectPool.close();
        }
    }

}
